# 标准库 | 状态 |最后更新 | API版本 | | ------ | ------ | ------ | | Active | 2019-11-14 | V1.00.00 | ## 描述 表头支持经过裁剪的lua标准库,这里将列举裁剪情况。 请注意裁剪情况可能随新固件更新而变化。 除非遇到非常紧迫的开发问题,支持的库只会增加,但不能完全保证会裁剪更多。 ## 备注 lua标准库本身没有提供创建目录的API,这个功能将由`sys.mkdir()`提供。 ## 概览 下面列出了各个标准库的大概裁剪情况: | 库 | 情况 | | ------ | ------ | | os | 被部分裁剪 | | string | 可用 | | io | 被部分裁剪 | | package | 被部分裁剪 | | | table | 可用 | | | math | 被部分裁剪 | | | debug | 被部分裁剪 | | | coroutine | 可用 | | ## os | 函数 | 情况 | 备注 | | ------ | ------ | ------ | | clock() | 可用 | 在该平台上返回系统启动以来的毫秒数 | | date() | 可用 | | | difftime() | 谨慎使用| *Note1 | | execute() | 被裁剪 | 在该平台上实现该函数无意义 | | exit() | 可用 | | | getenv() | 被裁剪 | 在该平台上实现该函数无意义 | | remove() | 可用 | 删除文件和文件夹均可使用该函数 | | rename() | 可用 | 重命名文件和文件夹均可使用该函数 | | setlocale() | 可用 | | | time() | 谨慎使用 | *Note1 | | tmpname() | 被裁剪 || Notes: 1.为了减小RAM使用量,在这个平台上lua number被定义为单精度float, 其有效精度低于uint32。因此,使用POSIX时间戳作为返回值的函数difftime(), time()被转化为lua number后将损失精度。 返回值的精度为128秒而非POSIX时间戳的1秒。推荐使用`os.date() `来规避POSIX时间戳的精度问题。 ## string | 函数 | 情况 | 备注 | | ------ | ------ | ------ | | byte() | 可用 | | | char() | 可用 | | | dump() | 可用 || | find() | 可用 | | | format() | 可用 | | | gfind() | 可用 | | | gmatch() | 可用 | | | gsub() | 可用 | | | len() | 可用 | | | lower() | 可用 | | | rep() | 可用 | | | reverse() | 可用 | | | sub() | 可用 | | | upper() | 可用 | | ## io | 函数 | 情况 | 备注 | | ------ | ------ | ------ | | close() | 可用 | | | flush() | 可用 | | | input() | 可用 | | | lines() | 可用 | | | open() | 可用 | | | output() | 可用 | | | popen() | 被裁剪 | 在该平台上实现该函数无意义 | | read() | 可用 | | | type() | 可用 | | | write() | 可用 | | | file:close() | 可用 | | | file:flush() | 可用 | | | file:lines() | 可用 | | | file:read() | 可用 | | | file:seek() | 可用 | | | file:setvbuf() | 被裁剪 | 在该平台上实现该函数无意义 | | file:write() | 可用 | | 文件访问被重定向至内部存储器。 ## package | 函数 | 情况 | 备注 | | ------ | ------ | ------ | | loadlib() | 被裁剪 | | | seeall() | 可用 | | ## table | 函数 | 情况 | 备注 | | ------ | ------ | ------ | | concat() | 可用 | | | insert() | 可用 | | | move() | 可用 | | | pack() | 可用 | | | remove() | 可用 | | | sort() | 可用 | | | unpack() | 可用 | | ## math | 函数 | 情况 | 备注 | | ------ | ------ | ------ | | abs() | 可用 | | | acos() | 被裁剪 | *Note1 | | asin() | 被裁剪 | *Note1 | | atan() | 被裁剪 | *Note1 | | ceil() | 可用 | | | cosh() | 被裁剪 | *Note1 | | cos() | 被裁剪 | *Note1 | | deg() | 被裁剪 | *Note1 | | exp() | 被裁剪 | *Note1 | | floor() | 可用 | | | fmod() | 可用 | | | mod() | 可用 | | | frexp() | 被裁剪 | *Note1 | | ldexp() | 被裁剪 | *Note1 | | log10() | 被裁剪 | *Note1 | | log() | 被裁剪 | *Note1 | | max() | 可用 | | | min() | 可用 | | | modf() | 可用 | | | pow() | 可用 | | | rad() | 被裁剪 | *Note1 | | random() | 可用 | | | randomseed() | 可用 | | | sinh() | 被裁剪 | *Note1 | | sin() | 被裁剪 | *Note1 | | sqrt() | 可用 | | | tanh() | 被裁剪 | *Note1 | | tan() | 被裁剪 | *Note1 | Notes: 1. 三角函数,对数和指数函数被裁剪,因为他们在应用中几乎不会被使用,且他们带来较大的ROM占用。 ## debug | 函数 | 情况 | 备注 | | ------ | ------ | ------ | | debug() | 被裁剪 | 没有对应的交互Shell | | gethook() | 可用 | | | getinfo() | 可用 | | | getlocal() | 可用 | | | getmetatable() | 可用 | | | getregistry() | 可用 | | | getupvalue() | 可用 | | | getuservalue() | 可用 | | | sethook() | 可用 | | | setlocal() | 可用 | | | setmetatable() | 可用 | | | setupvalue() | 可用 | | | setuservalue() | 可用 | | | traceback() | 可用 | | ## coroutine | 函数 | 情况 | 备注 | | ------ | ------ | ------ | | create() | 可用 | | | resume() | 可用 | | | running() | 可用 | | | status() | 可用 | | | wrap() | 可用 | | | yield() | 可用 | |